package com.ruoyi.part.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.utils.vo.PoCommon;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 零件库存信息对象 dms_part_storage_info
 * 
 * @author liuchuanfa
 * @date 2024-03-17
 */
public class DmsPartStorageInfo extends PoCommon
{
    private static final long serialVersionUID = 1L;

    /** 店端/厂端的库存 */
    @Excel(name = "店端/厂端的库存")
    private String inventoryType;

    /** 零件来源(1=OEM,2=自店) */
    @Excel(name = "零件来源", readConverterExp = "1=OEM,2=自店")
    private Integer partSource;

    /** 零件编码 */
    @Excel(name = "零件编码")
    private String partNo;

    /** 零件名称 */
    @Excel(name = "零件名称")
    private String partName;

    /** 零件类型(1=销售件,2=包材,3=工具包) */
    @Excel(name = "零件类型", readConverterExp = "1=销售件,2=包材,3=工具包")
    private Integer partType;

    /** 零件状态(0=厂端在库 1=经销商在途 2=经销商在库 3=已实销上报) */
    @Excel(name = "零件状态", readConverterExp = "0=厂端在库,1=经销商在途,2=经销商在库,3=已实销上报")
    private Integer partStatus;

    /** 网点单价（子公司向经销商售卖价） */
    @Excel(name = "网点单价")
    private Double outletPrice;

    /** 零售单价（经销商向用户售卖价） */
    @Excel(name = "零售单价")
    private Double salePrice;

    /** 采购单价(子公司向总部采购价） */
    @Excel(name = "采购单价")
    private Double purchasePrice;

    /** 生效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveDate;

    /** 截止日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "截止日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expirationDate;

    /** 裸件长mm */
    @Excel(name = "裸件长mm")
    private Integer grossLength;

    /** 裸件宽mm */
    @Excel(name = "裸件宽mm")
    private Integer grossWidth;

    /** 裸件高mm */
    @Excel(name = "裸件高mm")
    private Integer grossHeight;

    /** 包装长mm */
    @Excel(name = "包装长mm")
    private Integer packageLength;

    /** 包装宽mm */
    @Excel(name = "包装宽mm")
    private Integer packageWidth;

    /** 包装高mm */
    @Excel(name = "包装高mm")
    private Integer packageHeight;

    /** 存放长mm */
    @Excel(name = "存放长mm")
    private Integer storeLength;

    /** 存放宽mm */
    @Excel(name = "存放宽mm")
    private Integer storeWidth;

    /** 存放高mm */
    @Excel(name = "存放高mm")
    private Integer storeHeight;

    /** 裸件重量g */
    @Excel(name = "裸件重量g")
    private Integer grossWeight;

    /** 包装后重量g */
    @Excel(name = "包装后重量g")
    private Integer packageWeight;

    /** 体积 */
    @Excel(name = "体积")
    private Double volume;

    /** 是否可销售(0=否,1=是) */
    @Excel(name = "是否可销售", readConverterExp = "0=否,1=是")
    private Integer isSale;

    /** 是否可采购(0=否,1=是) */
    @Excel(name = "是否可采购", readConverterExp = "0=否,1=是")
    private Integer isPurchase;

    /** 是否排放件(0=否,1=是) */
    @Excel(name = "是否排放件", readConverterExp = "0=否,1=是")
    private Integer isEmission;

    /** 是否安全件(0=否,1=是) */
    @Excel(name = "是否安全件", readConverterExp = "0=否,1=是")
    private Integer isSafety;

    /** 是否防盗件(0=否,1=是) */
    @Excel(name = "是否防盗件", readConverterExp = "0=否,1=是")
    private Integer isAntiTheft;

    /** 是否认证件(0=否,1=是) */
    @Excel(name = "是否认证件", readConverterExp = "0=否,1=是")
    private Integer isCertified;

    /** 是否航空禁运件(0=否,1=是) */
    @Excel(name = "是否航空禁运件", readConverterExp = "0=否,1=是")
    private Integer isAirEmbargo;

    /** 厂端id */
    @Excel(name = "厂端id")
    private Long factoryId;

    /** 厂端名称 */
    @Excel(name = "厂端名称")
    private String factoryName;

    /** 经销商id */
    @Excel(name = "经销商id")
    private Long dealerId;

    /** 销售店名称 */
    @Excel(name = "销售店名称")
    private String dealerName;

    /** 经销商的零件最后一次出库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "经销商的零件最后一次出库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dealerLastShipmentTime;

    /** 经销商的零件最后一次入库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "经销商的零件最后一次入库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dealerLastStorageTime;

    /** 厂端的零件最后一次出库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "厂端的零件最后一次出库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date factoryLastShipmentTime;

    /** 厂端的零件最后一次入库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "厂端的零件最后一次入库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date factoryLastStorageTime;

    /** 审核人id */
    @Excel(name = "审核人id")
    @TableField(value = "auditor_id", fill = FieldFill.INSERT_UPDATE)
    private Long auditorId;

    /** 审核人名称 */
    @Excel(name = "审核名称")
    @TableField(value = "auditor_name", fill = FieldFill.INSERT_UPDATE)
    private String auditorName;

    /** 审核时间 */
    @Excel(name = "审核时间")
    @TableField(value = "auditor_time", fill = FieldFill.INSERT_UPDATE)
    private Date auditorTime;


    public void setInventoryType(String inventoryType) 
    {
        this.inventoryType = inventoryType;
    }

    public String getInventoryType() 
    {
        return inventoryType;
    }
    public void setPartSource(Integer partSource) 
    {
        this.partSource = partSource;
    }

    public Integer getPartSource() 
    {
        return partSource;
    }
    public void setPartNo(String partNo) 
    {
        this.partNo = partNo;
    }

    public String getPartNo() 
    {
        return partNo;
    }
    public void setPartName(String partName) 
    {
        this.partName = partName;
    }

    public String getPartName() 
    {
        return partName;
    }
    public void setPartType(Integer partType) 
    {
        this.partType = partType;
    }

    public Integer getPartType() 
    {
        return partType;
    }
    public void setPartStatus(Integer partStatus) 
    {
        this.partStatus = partStatus;
    }

    public Integer getPartStatus() 
    {
        return partStatus;
    }
    public void setOutletPrice(Double outletPrice) 
    {
        this.outletPrice = outletPrice;
    }

    public Double getOutletPrice() 
    {
        return outletPrice;
    }
    public void setSalePrice(Double salePrice) 
    {
        this.salePrice = salePrice;
    }

    public Double getSalePrice() 
    {
        return salePrice;
    }
    public void setPurchasePrice(Double purchasePrice) 
    {
        this.purchasePrice = purchasePrice;
    }

    public Double getPurchasePrice() 
    {
        return purchasePrice;
    }
    public void setEffectiveDate(Date effectiveDate) 
    {
        this.effectiveDate = effectiveDate;
    }

    public Date getEffectiveDate() 
    {
        return effectiveDate;
    }
    public void setExpirationDate(Date expirationDate) 
    {
        this.expirationDate = expirationDate;
    }

    public Date getExpirationDate() 
    {
        return expirationDate;
    }
    public void setGrossLength(Integer grossLength) 
    {
        this.grossLength = grossLength;
    }

    public Integer getGrossLength() 
    {
        return grossLength;
    }
    public void setGrossWidth(Integer grossWidth) 
    {
        this.grossWidth = grossWidth;
    }

    public Integer getGrossWidth() 
    {
        return grossWidth;
    }
    public void setGrossHeight(Integer grossHeight) 
    {
        this.grossHeight = grossHeight;
    }

    public Integer getGrossHeight() 
    {
        return grossHeight;
    }
    public void setPackageLength(Integer packageLength) 
    {
        this.packageLength = packageLength;
    }

    public Integer getPackageLength() 
    {
        return packageLength;
    }
    public void setPackageWidth(Integer packageWidth) 
    {
        this.packageWidth = packageWidth;
    }

    public Integer getPackageWidth() 
    {
        return packageWidth;
    }
    public void setPackageHeight(Integer packageHeight) 
    {
        this.packageHeight = packageHeight;
    }

    public Integer getPackageHeight() 
    {
        return packageHeight;
    }
    public void setStoreLength(Integer storeLength) 
    {
        this.storeLength = storeLength;
    }

    public Integer getStoreLength() 
    {
        return storeLength;
    }
    public void setStoreWidth(Integer storeWidth) 
    {
        this.storeWidth = storeWidth;
    }

    public Integer getStoreWidth() 
    {
        return storeWidth;
    }
    public void setStoreHeight(Integer storeHeight) 
    {
        this.storeHeight = storeHeight;
    }

    public Integer getStoreHeight() 
    {
        return storeHeight;
    }
    public void setGrossWeight(Integer grossWeight) 
    {
        this.grossWeight = grossWeight;
    }

    public Integer getGrossWeight() 
    {
        return grossWeight;
    }
    public void setPackageWeight(Integer packageWeight) 
    {
        this.packageWeight = packageWeight;
    }

    public Integer getPackageWeight() 
    {
        return packageWeight;
    }
    public void setVolume(Double volume) 
    {
        this.volume = volume;
    }

    public Double getVolume() 
    {
        return volume;
    }
    public void setIsSale(Integer isSale) 
    {
        this.isSale = isSale;
    }

    public Integer getIsSale() 
    {
        return isSale;
    }
    public void setIsPurchase(Integer isPurchase) 
    {
        this.isPurchase = isPurchase;
    }

    public Integer getIsPurchase() 
    {
        return isPurchase;
    }
    public void setIsEmission(Integer isEmission) 
    {
        this.isEmission = isEmission;
    }

    public Integer getIsEmission() 
    {
        return isEmission;
    }
    public void setIsSafety(Integer isSafety) 
    {
        this.isSafety = isSafety;
    }

    public Integer getIsSafety() 
    {
        return isSafety;
    }
    public void setIsAntiTheft(Integer isAntiTheft) 
    {
        this.isAntiTheft = isAntiTheft;
    }

    public Integer getIsAntiTheft() 
    {
        return isAntiTheft;
    }
    public void setIsCertified(Integer isCertified) 
    {
        this.isCertified = isCertified;
    }

    public Integer getIsCertified() 
    {
        return isCertified;
    }
    public void setIsAirEmbargo(Integer isAirEmbargo) 
    {
        this.isAirEmbargo = isAirEmbargo;
    }

    public Integer getIsAirEmbargo() 
    {
        return isAirEmbargo;
    }
    public void setFactoryId(Long factoryId) 
    {
        this.factoryId = factoryId;
    }

    public Long getFactoryId() 
    {
        return factoryId;
    }
    public void setFactoryName(String factoryName) 
    {
        this.factoryName = factoryName;
    }

    public String getFactoryName() 
    {
        return factoryName;
    }
    public void setDealerId(Long dealerId) 
    {
        this.dealerId = dealerId;
    }

    public Long getDealerId() 
    {
        return dealerId;
    }
    public void setDealerName(String dealerName) 
    {
        this.dealerName = dealerName;
    }

    public String getDealerName() 
    {
        return dealerName;
    }
    public void setDealerLastShipmentTime(Date dealerLastShipmentTime) 
    {
        this.dealerLastShipmentTime = dealerLastShipmentTime;
    }

    public Date getDealerLastShipmentTime() 
    {
        return dealerLastShipmentTime;
    }
    public void setDealerLastStorageTime(Date dealerLastStorageTime) 
    {
        this.dealerLastStorageTime = dealerLastStorageTime;
    }

    public Date getDealerLastStorageTime() 
    {
        return dealerLastStorageTime;
    }
    public void setFactoryLastShipmentTime(Date factoryLastShipmentTime) 
    {
        this.factoryLastShipmentTime = factoryLastShipmentTime;
    }

    public Date getFactoryLastShipmentTime() 
    {
        return factoryLastShipmentTime;
    }
    public void setFactoryLastStorageTime(Date factoryLastStorageTime) 
    {
        this.factoryLastStorageTime = factoryLastStorageTime;
    }

    public Date getFactoryLastStorageTime() 
    {
        return factoryLastStorageTime;
    }
    public void setAuditorId(Long auditorId) 
    {
        this.auditorId = auditorId;
    }

    public Long getAuditorId() 
    {
        return auditorId;
    }
    public void setAuditorName(String auditorName) 
    {
        this.auditorName = auditorName;
    }

    public String getAuditorName() 
    {
        return auditorName;
    }
    public void setAuditorTime(Date auditorTime) 
    {
        this.auditorTime = auditorTime;
    }

    public Date getAuditorTime() 
    {
        return auditorTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("inventoryType", getInventoryType())
            .append("partSource", getPartSource())
            .append("partNo", getPartNo())
            .append("partName", getPartName())
            .append("partType", getPartType())
            .append("partStatus", getPartStatus())
            .append("outletPrice", getOutletPrice())
            .append("salePrice", getSalePrice())
            .append("purchasePrice", getPurchasePrice())
            .append("effectiveDate", getEffectiveDate())
            .append("expirationDate", getExpirationDate())
            .append("grossLength", getGrossLength())
            .append("grossWidth", getGrossWidth())
            .append("grossHeight", getGrossHeight())
            .append("packageLength", getPackageLength())
            .append("packageWidth", getPackageWidth())
            .append("packageHeight", getPackageHeight())
            .append("storeLength", getStoreLength())
            .append("storeWidth", getStoreWidth())
            .append("storeHeight", getStoreHeight())
            .append("grossWeight", getGrossWeight())
            .append("packageWeight", getPackageWeight())
            .append("volume", getVolume())
            .append("isSale", getIsSale())
            .append("isPurchase", getIsPurchase())
            .append("isEmission", getIsEmission())
            .append("isSafety", getIsSafety())
            .append("isAntiTheft", getIsAntiTheft())
            .append("isCertified", getIsCertified())
            .append("isAirEmbargo", getIsAirEmbargo())
            .append("factoryId", getFactoryId())
            .append("factoryName", getFactoryName())
            .append("dealerId", getDealerId())
            .append("dealerName", getDealerName())
            .append("dealerLastShipmentTime", getDealerLastShipmentTime())
            .append("dealerLastStorageTime", getDealerLastStorageTime())
            .append("factoryLastShipmentTime", getFactoryLastShipmentTime())
            .append("factoryLastStorageTime", getFactoryLastStorageTime())
            .append("auditorId", getAuditorId())
            .append("auditorName", getAuditorName())
            .append("auditorTime", getAuditorTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("createUserName", getCreateUserName())
            .append("updateUserName", getUpdateUserName())
            .append("version", getVersion())
            .append("deleteFlag", getDeleteFlag())
            .toString();
    }
}
